package com.uobgroup.ews.uam.web;

import com.uobgroup.ews.uam.core.domain.LocationTransaction;
import com.uobgroup.ews.uam.core.service.ReferenceService;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.util.UriUtils;
import org.springframework.web.util.WebUtils;

@RequestMapping("/locationtransactions")
@Controller
public class LocationTransactionController {

	@Autowired
    ReferenceService referenceService;

//	@RequestMapping(method = RequestMethod.POST, produces = "text/html")
//    public String create(@Valid LocationTransaction locationTransaction, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
//        if (bindingResult.hasErrors()) {
//            populateEditForm(uiModel, locationTransaction);
//            return "locationtransactions/create";
//        }
//        uiModel.asMap().clear();
//        locationTransaction.persist();
//        return "redirect:/locationtransactions/" + encodeUrlPathSegment(locationTransaction.getId().toString(), httpServletRequest);
//    }
//
//	@RequestMapping(params = "form", produces = "text/html")
//    public String createForm(Model uiModel) {
//        populateEditForm(uiModel, new LocationTransaction());
//        return "locationtransactions/create";
//    }
//
//	@RequestMapping(value = "/{id}", produces = "text/html")
//    public String show(@PathVariable("id") Long id, Model uiModel) {
//        uiModel.addAttribute("locationtransaction", LocationTransaction.findLocationTransaction(id));
//        uiModel.addAttribute("itemId", id);
//        return "locationtransactions/show";
//    }
//
//	@RequestMapping(produces = "text/html")
//    public String list(@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
//        if (page != null || size != null) {
//            int sizeNo = size == null ? 10 : size.intValue();
//            final int firstResult = page == null ? 0 : (page.intValue() - 1) * sizeNo;
//            uiModel.addAttribute("locationtransactions", LocationTransaction.findLocationTransactionEntries(firstResult, sizeNo));
//            float nrOfPages = (float) LocationTransaction.countLocationTransactions() / sizeNo;
//            uiModel.addAttribute("maxPages", (int) ((nrOfPages > (int) nrOfPages || nrOfPages == 0.0) ? nrOfPages + 1 : nrOfPages));
//        } else {
//            uiModel.addAttribute("locationtransactions", LocationTransaction.findAllLocationTransactions());
//        }
//        return "locationtransactions/list";
//    }
//
//	@RequestMapping(method = RequestMethod.PUT, produces = "text/html")
//    public String update(@Valid LocationTransaction locationTransaction, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
//        if (bindingResult.hasErrors()) {
//            populateEditForm(uiModel, locationTransaction);
//            return "locationtransactions/update";
//        }
//        uiModel.asMap().clear();
//        locationTransaction.merge();
//        return "redirect:/locationtransactions/" + encodeUrlPathSegment(locationTransaction.getId().toString(), httpServletRequest);
//    }
//
//	@RequestMapping(value = "/{id}", params = "form", produces = "text/html")
//    public String updateForm(@PathVariable("id") Long id, Model uiModel) {
//        populateEditForm(uiModel, LocationTransaction.findLocationTransaction(id));
//        return "locationtransactions/update";
//    }
//
//	@RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html")
//    public String delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
//        LocationTransaction locationTransaction = LocationTransaction.findLocationTransaction(id);
//        locationTransaction.remove();
//        uiModel.asMap().clear();
//        uiModel.addAttribute("page", (page == null) ? "1" : page.toString());
//        uiModel.addAttribute("size", (size == null) ? "10" : size.toString());
//        return "redirect:/locationtransactions";
//    }
//
//	void populateEditForm(Model uiModel, LocationTransaction locationTransaction) {
//        uiModel.addAttribute("locationTransaction", locationTransaction);
//        uiModel.addAttribute("references", referenceService.findAllReferences());
//    }
//
//	String encodeUrlPathSegment(String pathSegment, HttpServletRequest httpServletRequest) {
//        String enc = httpServletRequest.getCharacterEncoding();
//        if (enc == null) {
//            enc = WebUtils.DEFAULT_CHARACTER_ENCODING;
//        }
//        try {
//            pathSegment = UriUtils.encodePathSegment(pathSegment, enc);
//        } catch (UnsupportedEncodingException uee) {}
//        return pathSegment;
//    }
}
